home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / alpha / dipc / dipc-0.000 / dipc-0 / dipc-0.15 / dipcd / dipcd.h < prev    next >
C/C++ Source or Header  |  1996-07-16  |  2KB  |  112 lines

  1. /*
  2.  * dipcd.h
  3.  *
  4.  * part of dipcd source code
  5.  *
  6.  * Copyright (C) Kamran Karimi
  7.  */
  8.  
  9. #include <sys/ipc.h> 
  10. #include <sys/types.h>
  11. #include <sys/time.h>
  12. #include <sys/wait.h>
  13. #include <sys/times.h>
  14. #include <stdio.h>
  15. #include <stdlib.h>
  16. #include <ctype.h>
  17. #include <signal.h>
  18. #include <sys/msg.h>
  19. #include <sys/shm.h>
  20. #include <sys/sem.h>
  21. #include <string.h>
  22. #include <unistd.h>
  23. #include <sys/socket.h>
  24. #include <sys/un.h>
  25. #include <netinet/in.h>
  26. #include <arpa/inet.h>
  27. #include <errno.h>
  28. #include <pwd.h>
  29.  
  30. #include <linux/dipc.h>
  31. #include "dipc_path.h"
  32.  
  33.  
  34. #define DIPC_E_TIMEOUT EIO
  35. #define DIPC_E_FORK    EIO
  36. #define DIPC_E_TYPE    EINVAL
  37.  
  38. typedef int BOOLEAN;
  39. typedef int FD;
  40.  
  41. #define BAD_FD -1
  42.  
  43. char mstr[];
  44.  
  45. #define INFO __FILE__, __LINE__
  46.  
  47. #define CONFIG_FILE "/etc/dipc.conf"
  48.  
  49. #define DIPC_TCP_PORT 6543 /* any better addresses ? */
  50. #define DIPC_REFEREE_PORT 6520
  51.  
  52. /* maximum time a machine can have a shm, in seconds */
  53. #define SHM_HOLD_TIMEOUT 0.5
  54.  
  55. /* maximum time an employer or key manager will 
  56.    wait for a reply, in integer seconds */ 
  57. #define EMPLOYER_REFEREE_TIMEOUT 40
  58. #define EMPLOYER_SHM_TIMEOUT     50
  59. #define EMPLOYER_WORKER_TIMEOUT  300
  60. #define SHM_AK_TIMEOUT           30
  61. #define REFEREE_TIMEOUT          15
  62.  
  63. #define IPC_SET  1
  64. #define IPC_STAT 2
  65.  
  66. #define SEMOP  1
  67. #define SEMCTL 3
  68.  
  69. #define MSGSND 11
  70. #define MSGRCV 12
  71. #define MSGCTL 14
  72.  
  73. #define SHMCTL 24
  74.  
  75. #define BUFF_SIZE 4096
  76. #define MAXDATA 4100 /* 4096 + 4, for msg */
  77.  
  78. #define REQ_SHMMAN     101
  79. #define RES_SHMMAN    1001
  80.  
  81. #define REQ_REFEREE    102
  82. #define RES_REFEREE   1002
  83.  
  84. #define REQ_DOWORK   118
  85. #define RES_DOWORK  1018
  86.  
  87. #define FALSE 0
  88. #define TRUE  1
  89.  
  90. #define FAIL     0
  91. #define SUCCESS  1
  92.  
  93. struct message {
  94.  int arch;
  95.  struct sockaddr_in address;
  96.  struct sockaddr_in address2;
  97.  int pid;
  98.  int request; 
  99.  int reserved;
  100.  struct dipc_info info; 
  101. };
  102.  
  103. struct usr_info
  104. {
  105.  char name[40];
  106. };
  107.  
  108. #define SAME_MACHINE(a,b) ((a)->sin_addr.s_addr == (b).sin_addr.s_addr)
  109.  
  110. #define SAME_ADDRESS(a,b) (((a)->sin_addr.s_addr == (b).sin_addr.s_addr) &&\
  111. ((a)->sin_port == (b).sin_port))
  112.